import { RMIProxyObject } from "../../Engine/RMI/RMIProxyObject";
import { IAchievementPrx } from "./IAchievementPrx";
import { AMI_IAchievement_achievementOverview } from "./AMI_IAchievement_achievementOverview";
import { SerializeStream } from "../../Framework/Serialize/SerializeStream";
import { Outgoing } from "../../Engine/RMI/Outgoing";
import { AMI_IAchievement_getAchieveCodes } from "./AMI_IAchievement_getAchieveCodes";
import { AMI_IAchievement_getAchievementCategroy } from "./AMI_IAchievement_getAchievementCategroy";
import { AMI_IAchievement_getAchievementCategroyReward } from "./AMI_IAchievement_getAchievementCategroyReward";
import { AMI_IAchievement_getAchievementReward } from "./AMI_IAchievement_getAchievementReward";
type int = number;
//class IAchievementPrxHelper
    
    export  class IAchievementPrxHelper extends RMIProxyObject implements IAchievementPrx
    {
        constructor()
        {
            
            super();name = "IAchievement";
            return;
        }

        public achievementOverview_async(arg1: AMI_IAchievement_achievementOverview): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("achievementOverview");
            var loc3=new SerializeStream();
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public getAchieveCodes_async(arg1: AMI_IAchievement_getAchieveCodes): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("getAchieveCodes");
            var loc3=new SerializeStream();
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public getAchievementCategroy_async(arg1: AMI_IAchievement_getAchievementCategroy, arg2: int): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("getAchievementCategroy");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public getAchievementCategroyReward_async(arg1: AMI_IAchievement_getAchievementCategroyReward, arg2: int, arg3: int): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("getAchievementCategroyReward");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            loc3.writeInt(arg3);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public getAchievementReward_async(arg1: AMI_IAchievement_getAchievementReward, arg2: int): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("getAchievementReward");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public static /* const */NAME: string="Message.Game.IAchievement";
    }
